guint button;
gint tmp_pos;
- gtk_entry_selection_bubble_popup_unset (entry);
-
button = gtk_gesture_single_get_current_button (GTK_GESTURE_SINGLE (gesture));
current = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture));
event = gtk_gesture_get_last_event (GTK_GESTURE (gesture), current);
const GdkEvent *event;
gint x, y;
+ gtk_entry_selection_bubble_popup_unset (entry);
+
gesture_get_current_point (GTK_GESTURE_SINGLE (gesture), entry, &x, &y);
sequence = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture));
event = gtk_gesture_get_last_event (GTK_GESTURE (gesture), sequence);
if (priv->magnifier_popover)
gtk_widget_hide (priv->magnifier_popover);
- /* Check whether the drag was cancelled rather than finished */
- if (!gtk_gesture_handles_sequence (GTK_GESTURE (gesture), sequence))
- return;
-
event = gtk_gesture_get_last_event (GTK_GESTURE (gesture), sequence);
source = gdk_event_get_source_device (event);
is_touchscreen = (test_touchscreen ||
gdk_device_get_source (source) == GDK_SOURCE_TOUCHSCREEN);
+ if (priv->selection_bubble &&
+ gtk_widget_get_visible (priv->selection_bubble))
+ gtk_entry_selection_bubble_popup_unset (entry);
+ else if (is_touchscreen)
+ gtk_entry_selection_bubble_popup_set (entry);
+
+ /* Check whether the drag was cancelled rather than finished */
+ if (!gtk_gesture_handles_sequence (GTK_GESTURE (gesture), sequence))
+ return;
+
if (in_drag)
{
gint tmp_pos = gtk_entry_find_position (entry, priv->drag_start_x);
if (is_touchscreen)
gtk_entry_update_handles (entry, GTK_TEXT_HANDLE_MODE_CURSOR);
}
- else if (is_touchscreen)
- {
- gtk_entry_selection_bubble_popup_set (entry);
- }
gtk_entry_update_primary_selection (entry);
}
GtkTextHandlePosition pos,
GtkEntry *entry)
{
- gtk_entry_selection_bubble_popup_set (entry);
+ if (entry->priv->selection_bubble &&
+ gtk_widget_get_visible (entry->priv->selection_bubble))
+ gtk_entry_selection_bubble_popup_unset (entry);
+ else
+ gtk_entry_selection_bubble_popup_set (entry);
if (entry->priv->magnifier_popover)
gtk_widget_hide (entry->priv->magnifier_popover);